/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import java.awt.Color;
import java.util.Random;
import java.util.Vector;
import neuronio.ClasseNeuronio;

/**
 *
 * @author Julio Dantas
 */
public class NeuronioUtil
{
  public static Color[] codificarClasse(ClasseNeuronio[] resposta, Vector<String> copiaCodificacao)
  {
    int tamanho = resposta.length;
    int i, temp;
    Vector<String> classeOriginal = new Vector<String>(2);
    Color[] cores;
    
    for (i = 0; i < tamanho; i++)
    {
      if (!existeVetor(classeOriginal, resposta[i].getClasseOriginal()))
        classeOriginal.add(resposta[i].getClasseOriginal());
    }
    
    cores = new Color[classeOriginal.size()];
    Random gerador = new Random(System.currentTimeMillis());
    for (i = 0; i < cores.length; i++)
      cores[i] = new Color(gerador.nextInt(256),
                    gerador.nextInt(256),
                    gerador.nextInt(256));
    
    
    for (i = 0; i < tamanho; i++)
    {
      temp = getCodigo(classeOriginal, resposta[i].getClasseOriginal());
      resposta[i].setClasseCodificada(temp);
      resposta[i].setCor(cores[temp]);
    }
    
    //copiaCodificacao = classeOriginal;
    copiaCodificacao.addAll(classeOriginal);
    
    return (cores);
  }
  
  private static int getCodigo(Vector<String> vetor, String temp)
  {
    int tamanho = vetor.size();
    for (int i = 0; i < tamanho; i++)
    {
      if (temp.equals(vetor.elementAt(i)))
        return(i);
    }
    return(-1);
  }
  
  private static boolean existeVetor(Vector<String> vetor, String string)
  {
    int tamanho = vetor.size();
    boolean retorno = false;
    
    for (int i = 0; i < tamanho; i++)
    {
      if (vetor.elementAt(i).equals(string))
      {
        retorno = true;
        break;
      }
    }
    return(retorno);
  }
}
